Some of the widely used applications like surveillance and autonomous driving of vehicles are highly dependent on video quality. The video captured using various devices differs in the quality based on several external factors like weather, rain, snowfall, distortion, and the like. Due to these factors, the captured video becomes unclear or noisy which ultimately degrades the quality of the video. For example, the video captured during a raining condition contains rain streaks (i.e., noise) which makes the video unclear. Objects in the captured video may get occluded due to the rain streaks.
Sometimes the objects are occluded to the extent that the objects become completely unclear in the video. It becomes a challenge for surveillance system or monitoring system to detect the occluded objects from the video. Some techniques are available for removing the noise (rain streaks) from the video, however, those techniques fail to produce a clear image or video after rain streak removal. For example, there exist some techniques like simple temporal filtering methods, which are not effective in removing rain streaks since they are spatially invariant and hence degrade the quality of the final image/video that is generated. The other techniques use a method which explicitly detects pixels affected by rain and removes only the rain streaks in those pixels, preserving the temporal frequencies due to object and camera motions. In such cases also, severely defocused rain streaks are not removed and the analysis of other types of dynamics in the rain such as splashing of raindrops or steady effects of rain are not considered, making such methods less effective. The objects from such poorly generated videos/images are not distinguishable, thereby leading to the failure of the surveillance system or the monitoring system.